package com.zzedu.params.content;

import com.zzedu.enmuns.SelectOptionEnum;
import com.zzedu.vo.SelectOptionVO;
import com.zzedu.vo.WordSpellingSentencesVO;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public class ZzSubjectContentParams {
    private Long id;

    /**
     * 节点ID
     */
    @NotNull(message = "节点ID不能为空")
    private Long nodeId;

    /**
     * 类型(视频、图片、互动)
     */
    @NotBlank(message = "类型不能为空")
    private String subjectType;


    /**
     * 互动类型
     */
    private String interaction;

    /**
     * 互动模板
     */
    private String template;

    /**
     * 标题
     */
    private String title;

    /**
     * 视频类型# 有效
     * 是否使用封面视频
     * 0=是
     * 1=否
     */
    private Integer videoFlag;
    /**
     * 视频 信息
     */
    private VideoParams videoParams;

    /**
     * 背景 音乐
     */
    private VideoParams audioParams;

    /**
     * 音乐【图片生效】
     */
    private List<VideoParams> musicParams;
    /**
     * 图片
     */
    private VideoParams imageParams;
    /**
     * 顺序（升序）
     */
    @NotNull(message = "顺序不能为空")
    private Long sortNo;

    /**
     * 单词集合
     */
    private List<String> words;

    /**
     * 正确答案
     */
    private String rightWord;

    /**
     * 题目内容
     */
    private String subjectText;

    /**
     * 蒙层
     */
    private List<VideoParams> markLayerList;

    /**
     * 蒙层-上间距
     */
    private String maskLayerTop;

    /**
     * 蒙层-下间距
     */
    private String maskLayerBottom;

    /**
     * 蒙层默认显示模式
     * show: 显示
     * hide: 隐藏
     */
    private String defaultMaskLayerShowModel;
    /**
     * 拖拽
     */
    private List<VideoParams> dragImageList;


    /**
     * 自定义主图1
     */
    private List<VideoParams> main1ImageArray;

    /**
     * 自定义主图2
     */
    private List<VideoParams> main2ImageArray;
    /**
     * 句子
     */
    private List<String> sentences;
    /**
     * 句子音频
     */
    private VideoParams sentencesAudioParams;

    /**
     * 句子图片
     */
    private VideoParams sentencesImageParams;

    /**
     * 模式
     * 1-单词
     * 2-句子
     */
    private Integer wordSpelling;

    /**
     * 挖空 句子
     * id
     * name:
     * select
     */
    private List<WordSpellingSentencesVO> wordSpellingSentences;


    /**
     * 选项类型 选择-自定义时有值
     */
    private SelectOptionEnum selectOptionEnum;
    /**
     * 选择-自定义时有值(题目-音频)
     */
    private VideoParams subjectAudio;

    /**
     * 选择-自定义时有值(题目-图片)
     */
    private VideoParams subjectImage;

    /**
     * 选择-自定义时有值(选项-内容)
     */
    private List<SelectOptionVO> selectOptionVOList;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getNodeId() {
        return nodeId;
    }

    public void setNodeId(Long nodeId) {
        this.nodeId = nodeId;
    }

    public String getSubjectType() {
        return subjectType;
    }

    public void setSubjectType(String subjectType) {
        this.subjectType = subjectType;
    }

    public String getInteraction() {
        return interaction;
    }

    public void setInteraction(String interaction) {
        this.interaction = interaction;
    }

    public String getTemplate() {
        return template;
    }

    public void setTemplate(String template) {
        this.template = template;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getVideoFlag() {
        return videoFlag;
    }

    public void setVideoFlag(Integer videoFlag) {
        this.videoFlag = videoFlag;
    }

    public VideoParams getVideoParams() {
        return videoParams;
    }

    public void setVideoParams(VideoParams videoParams) {
        this.videoParams = videoParams;
    }

    public VideoParams getAudioParams() {
        return audioParams;
    }

    public void setAudioParams(VideoParams audioParams) {
        this.audioParams = audioParams;
    }

    public List<VideoParams> getMusicParams() {
        return musicParams;
    }

    public void setMusicParams(List<VideoParams> musicParams) {
        this.musicParams = musicParams;
    }

    public VideoParams getImageParams() {
        return imageParams;
    }

    public void setImageParams(VideoParams imageParams) {
        this.imageParams = imageParams;
    }

    public Long getSortNo() {
        return sortNo;
    }

    public void setSortNo(Long sortNo) {
        this.sortNo = sortNo;
    }

    public List<String> getWords() {
        return words;
    }

    public void setWords(List<String> words) {
        this.words = words;
    }

    public String getRightWord() {
        return rightWord;
    }

    public void setRightWord(String rightWord) {
        this.rightWord = rightWord;
    }

    public String getSubjectText() {
        if ("null".equals(subjectText)) {
            return "";
        }
        return subjectText;
    }

    public void setSubjectText(String subjectText) {
        this.subjectText = subjectText;
    }

    public List<VideoParams> getMarkLayerList() {
        return markLayerList;
    }

    public void setMarkLayerList(List<VideoParams> markLayerList) {
        this.markLayerList = markLayerList;
    }

    public String getMaskLayerTop() {
        return maskLayerTop;
    }

    public void setMaskLayerTop(String maskLayerTop) {
        this.maskLayerTop = maskLayerTop;
    }

    public String getMaskLayerBottom() {
        return maskLayerBottom;
    }

    public void setMaskLayerBottom(String maskLayerBottom) {
        this.maskLayerBottom = maskLayerBottom;
    }

    public String getDefaultMaskLayerShowModel() {
        return defaultMaskLayerShowModel;
    }

    public void setDefaultMaskLayerShowModel(String defaultMaskLayerShowModel) {
        this.defaultMaskLayerShowModel = defaultMaskLayerShowModel;
    }

    public List<VideoParams> getDragImageList() {
        return dragImageList;
    }

    public void setDragImageList(List<VideoParams> dragImageList) {
        this.dragImageList = dragImageList;
    }

    public List<VideoParams> getMain1ImageArray() {
        return main1ImageArray;
    }

    public void setMain1ImageArray(List<VideoParams> main1ImageArray) {
        this.main1ImageArray = main1ImageArray;
    }

    public List<VideoParams> getMain2ImageArray() {
        return main2ImageArray;
    }

    public void setMain2ImageArray(List<VideoParams> main2ImageArray) {
        this.main2ImageArray = main2ImageArray;
    }

    public List<String> getSentences() {
        return sentences;
    }

    public void setSentences(List<String> sentences) {
        this.sentences = sentences;
    }

    public VideoParams getSentencesAudioParams() {
        return sentencesAudioParams;
    }

    public void setSentencesAudioParams(VideoParams sentencesAudioParams) {
        this.sentencesAudioParams = sentencesAudioParams;
    }

    public VideoParams getSentencesImageParams() {
        return sentencesImageParams;
    }

    public void setSentencesImageParams(VideoParams sentencesImageParams) {
        this.sentencesImageParams = sentencesImageParams;
    }

    public Integer getWordSpelling() {
        return wordSpelling;
    }

    public void setWordSpelling(Integer wordSpelling) {
        this.wordSpelling = wordSpelling;
    }

    public List<WordSpellingSentencesVO> getWordSpellingSentences() {
        return wordSpellingSentences;
    }

    public void setWordSpellingSentences(List<WordSpellingSentencesVO> wordSpellingSentences) {
        this.wordSpellingSentences = wordSpellingSentences;
    }

    public SelectOptionEnum getSelectOptionEnum() {
        return selectOptionEnum;
    }

    public void setSelectOptionEnum(SelectOptionEnum selectOptionEnum) {
        this.selectOptionEnum = selectOptionEnum;
    }

    public VideoParams getSubjectAudio() {
        return subjectAudio;
    }

    public void setSubjectAudio(VideoParams subjectAudio) {
        this.subjectAudio = subjectAudio;
    }

    public VideoParams getSubjectImage() {
        return subjectImage;
    }

    public void setSubjectImage(VideoParams subjectImage) {
        this.subjectImage = subjectImage;
    }

    public List<SelectOptionVO> getSelectOptionVOList() {
        return selectOptionVOList;
    }

    public void setSelectOptionVOList(List<SelectOptionVO> selectOptionVOList) {
        this.selectOptionVOList = selectOptionVOList;
    }
}
